Don’t forget to document your functions! ({roxygen}-style)
#' Read and clean data#' #' Reads in the penguins data, renames and selects relevant columns. The#' following transformations are applied to the data: #' * only keep species common name#' * extract observation year#' * remove rows with missing values#' #' @param file Character, path to the penguins data .csv file.#' @returns A tibble.read_data <-function(file) { readr::read_csv(file, show_col_types =FALSE) |> janitor::clean_names() |> dplyr::mutate(## modifying columns ) |> dplyr::select(## all relevant columns ) |> tidyr::drop_na()}
Step 1: Turn your code into functions
Improved script:
R/helper_functions.R
#' Read and clean data#' #' ...read_data <-function(file) { ... }#' Violin plot of variable per species and sex#' #' ...violin_plot <-function(df, yvar) { ... }#' Scatter plot of bill length vs depth#' #' ...plot_bill_length_depth <-function(df) { ... }
here() starts at C:/Users/hrpoab/Desktop/GitHub/palmerpenguins_analysis
> dispatched target penguins_raw_file
o completed target penguins_raw_file [0 seconds]
> dispatched target penguins_df
o completed target penguins_df [0.85 seconds]
> dispatched target body_mass_plot
o completed target body_mass_plot [0.16 seconds]
> dispatched target bill_scatterplot
o completed target bill_scatterplot [0.02 seconds]
> dispatched target flipper_length_plot
o completed target flipper_length_plot [0.02 seconds]
> ended pipeline [1.31 seconds]
Get the pipeline results
targets::tar_read(bill_scatterplot)
Change in a step
Hi Olivia,
Great work! Just a minor comment, could you change the colours in the bill length/depth scatter-plot? It’s hard to see the difference between the species.
Great work! Just a minor comment, could you change the colours in the bill length/depth scatter-plot? It’s hard to see the difference between the species.
---title: "Analysis of penguins measurements from the palmerpenguins dataset"author: "Olivia Angelin-Bonnet"date: todayformat: docx: number-sections: true---```{r setup}#| include: falselibrary(knitr)opts_chunk$set(echo = FALSE)```This project aims at understanding the differences between the size of three species of penguins (Adelie, Chinstrap and Gentoo) observed in the Palmer Archipelago, Antarctica, using data collected by Dr Kristen Gorman between 2007 and 2009.## Distribution of body mass and flipper length@fig-body-mass shows the distribution of body mass (in grams) across the three penguins species. We can see that on average, the Gentoo penguins are the heaviest, with Adelie and Chinstrap penguins more similar in terms of body mass. Within a species, the females are on average lighter than the males.```{r fig-body-mass}#| fig-cap: "Distribution of penguin body mass (g) across species and sex."# code for plot```Similarly, Gentoo penguins have the longest flippers on average (@fig-flipper-length), and Adelie penguins the shortest. Again, females from a species have shorter flippers on average than the males.```{r fig-flipper-length}#| fig-cap: "Distribution of penguin flipper length (mm) across species and sex."# code for plot```## Association between bill length and depthIn this dataset, bill measurements refer to measurements of the culmen, which is the upper ridge of the bill. There is a clear relationship between bill length and depth, but it is masked in the dataset by differences between species (@fig-bill-scatterplot), with Gentoo penguins exhibiting longer but shallower bills, and Adelie penguins shorter and deeper bills.```{r fig-bill-scatterplot}#| fig-cap: "Scatterplot of penguin bill length and depth."# code for plot```
Writing a report – Quarto + {targets}
Two advantages of using a Quarto document alongside {targets}:
can read in results from targets pipeline inside the report: no computation done during report generation
can add the rendering of the report as a step in the pipeline: ensures that the report is always up-to-date
Writing a report – Quarto + {targets}
reports/palmerpenguins_report.qmd
---title: "Analysis of penguins measurements from the palmerpenguins dataset"author: "Olivia Angelin-Bonnet"date: todayformat: docx---```{r setup}#| include: falselibrary(knitr)opts_chunk$set(echo = FALSE)```This project aims at understanding the differences...## Distribution of body mass and flipper length@fig-body-mass shows...```{r fig-body-mass}#| fig-cap: "Distribution of penguin body mass (g) across species and sex."# code for plot```
Two steps to use the {targets} pipeline results in a Quarto document:
Writing a report – Quarto + {targets}
reports/palmerpenguins_report.qmd
---title: "Analysis of penguins measurements from the palmerpenguins dataset"author: "Olivia Angelin-Bonnet"date: todayformat: docx---```{r setup}#| include: falselibrary(knitr)library(here)opts_chunk$set(echo = FALSE)opts_knit$set(root.dir = here())```This project aims at understanding the differences...## Distribution of body mass and flipper length@fig-body-mass shows...```{r fig-body-mass}#| fig-cap: "Distribution of penguin body mass (g) across species and sex."# code for plot```
Two steps to use the {targets} pipeline results in a Quarto document:
Make sure the report ‘sees’ the project root directory
Writing a report – Quarto + {targets}
reports/palmerpenguins_report.qmd
---title: "Analysis of penguins measurements from the palmerpenguins dataset"author: "Olivia Angelin-Bonnet"date: todayformat: docx---```{r setup}#| include: falselibrary(knitr)library(here)library(targets)opts_chunk$set(echo = FALSE)opts_knit$set(root.dir = here())```This project aims at understanding the differences...## Distribution of body mass and flipper length@fig-body-mass shows...```{r fig-body-mass}#| fig-cap: "Distribution of penguin body mass (g) across species and sex."tar_read(body_mass_plot)```
Two steps to use the {targets} pipeline results in a Quarto document:
Make sure the report ‘sees’ the project root directory
Read targets objects with targets::tar_read()
Writing a report – Quarto + {targets}
Adding the Quarto report as a step in the pipeline (need {tarchetypes} and {quarto}):
Presentation prepared by: Author name Scientist, Group Month Year
Presentation approved by: SGL Science Group Leader, Group Month Year
For more information contact: Author name DDI: +64 X XXX XXXX Email: firstname.lastname@plantandfood.co.nz
This report has been prepared by The New Zealand Institute for Plant and Food Research Limited (Plant & Food Research). Head Office: 120 Mt Albert Road, Sandringham, Auckland 1025, New Zealand, Tel: +64 9 925 7000, Fax: +64 9 925 7001. www.plantandfood.co.nz
DISCLAIMER
The New Zealand Institute for Plant and Food Research Limited does not give any prediction, warranty or assurance in relation to the accuracy of or fitness for any particular use or application of, any information or scientific or other result contained in this presentation. Neither The New Zealand Institute for Plant and Food Research Limited nor any of its employees, students, contractors, subcontractors or agents shall be liable for any cost (including legal costs), claim, liability, loss, damage, injury or the like, which may be suffered or incurred as a direct or indirect result of the reliance by any person on any information contained in this presentation.